package com.ruoyi.system.domain;

import com.alibaba.fastjson2.JSON;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.domain.entity.SysUser;
import lombok.Data;


import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 入会条件信息，存储会员入会条件的各个版本及其状态对象 t_membership_conditions
 * 
 * @author ruoyi
 * @date 2025-08-25
 */

public class
TMember extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /*会员ID*/
    private Long memberId;
    /*用户ID*/
    @Excel(name = "用户ID")
    @NotNull(message = "用户ID不能为空")
    private long userId;
    /*入会时间*/
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入会时间", width = 30, dateFormat = "yyyy-MM-dd")
    @NotNull(message = "入会时间不能为空")
    private Date joinDate;
    /**
     * 会员级别
     */
    @Excel(name = "会员级别", readConverterExp = "国家=国家,自治区=自治区,市级=市级,区县=区县")
    private String membershipLevel;

    /**
     * 艺术成就，存储JSON格式的成就列表
     */
    @Excel(name = "艺术成就")
    private String artisticAchievements;

    /**
     * 代表作品，存储JSON格式的作品信息
     */
    @Excel(name = "代表作品")
    private String representativeWorks;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updatedAt;

    private SysUser user;

    @Override
    public String toString() {
        return "TMember{" +
                "memberId=" + memberId +
                ", userId=" + userId +
                ", joinDate=" + joinDate +
                ", membershipLevel='" + membershipLevel + '\'' +
                ", artisticAchievements='" + artisticAchievements + '\'' +
                ", representativeWorks='" + representativeWorks + '\'' +
                ", updatedAt=" + updatedAt +
                ", user=" + user +
                '}';
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public Long getMemberId() {
        return memberId;
    }

    public void setMemberId(Long memberId) {
        this.memberId = memberId;
    }

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        this.userId = userId;
    }

    public Date getJoinDate() {
        return joinDate;
    }

    public void setJoinDate(Date joinDate) {
        this.joinDate = joinDate;
    }

    public String getMembershipLevel() {
        return membershipLevel;
    }

    public void setMembershipLevel(String membershipLevel) {
        this.membershipLevel = membershipLevel;
    }

    public String getArtisticAchievements() {
        return artisticAchievements;
    }

    public void setArtisticAchievements(String artisticAchievements) {
        this.artisticAchievements = artisticAchievements;
    }

    public String getRepresentativeWorks() {
        return representativeWorks;
    }

    public void setRepresentativeWorks(String representativeWorks) {
        this.representativeWorks = representativeWorks;
    }

    public Date getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    public SysUser getUser() {
        return user;
    }

    public void setUser(SysUser user) {
        this.user = user;
    }
}


